#ifndef __SCENEMANAGER_H__
#define __SCENEMANAGER_H__

#include <vector>
#include "Globals.h"

class Graphics;
class SceneManager
{
public:

    class Scene
    {
	public:
    	virtual void Execute(void) = 0;
    	virtual void Draw(void) {
	    	Graphics *g = &Globals::graphics;
    	};
    };
    
    typedef std::vector<Scene*> Scenes;

    void add(Scene* scene);
    void erase(Scene** scene);
    void clear(void);
    
    SceneManager();
    virtual ~SceneManager() {};

private:
    Scenes     _scenes;
    Scene* _curr_scene;
};

#endif
